﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Thu Vien Them Vao
using QuanLyQuanCafe.DataAccess;
using QuanLyQuanCafe.BusinessObject;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace QuanLyQuanCafe.BusinessLogic
{
    class PhieuDatBanBL
    {
        KetNoiDuLieu connect = new KetNoiDuLieu();
        public DataTable LayDanhSachPhieuDatBan()
        {
            string sql = "SELECT MaDB, HoTenKH, ThoiDiem, TienCoc, MaBan, CMND_KH FROM DATBAN";
            return connect.LayDanhSachDuLieu(sql);
        }

        private bool KiemTraTruocKhiLuu(PhieuDatBanBO phieudatbanBO)
        {
            if (phieudatbanBO.HoTenKH.Equals(""))
            {
                MessageBox.Show("Họ Tên Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }                
            if (phieudatbanBO.CMND_KH.Equals("") || (int.Parse(phieudatbanBO.CMND_KH) < 100000000) || (int.Parse(phieudatbanBO.CMND_KH) > 999999999))
            {
                MessageBox.Show("Chứng Minh Nhân Dân Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            } 
            if (phieudatbanBO.ThoiDiem <= DateTime.Now)
            {
                MessageBox.Show("Thời Điểm Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            } 
            if (phieudatbanBO.TienCoc < 50000)
            {
                MessageBox.Show("Tiền Cọc Phải Lớn Hơn 50.000 Đ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            } 
            if (phieudatbanBO.MaBan.Equals(""))
            {
                MessageBox.Show("Mã Bàn Không Hợp Lệ.", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            } 
            return true;
        }

        public bool ThemPhieuDatBan(PhieuDatBanBO phieudatbanBO)
        {
            if (KiemTraTruocKhiLuu(phieudatbanBO))
            {
                string sql = string.Format("INSERT INTO DATBAN (HoTenKH, ThoiDiem, TienCoc, MaBan, CMND_KH)"
                    +" VALUES (N'{0}', '{1}', '{2}', '{3}', '{4}')", phieudatbanBO.HoTenKH, phieudatbanBO.ThoiDiem, phieudatbanBO.TienCoc, phieudatbanBO.MaBan, phieudatbanBO.CMND_KH);
                string sqlCapNhatBan = string.Format("UPDATE BAN SET TinhTrang = '2' WHERE (MaBan = '{0}')", phieudatbanBO.MaBan);
                if (connect.ExecuteQuery(sql) && connect.ExecuteQuery(sqlCapNhatBan))
                {
                    MessageBox.Show("Nhận Đặt Bàn & Cập Nhật Trạng Thái Bàn Thành Công!", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return true;
                }
            }
            return false;
        }
        public bool SuaPhieuDatBan(PhieuDatBanBO phieudatbanBO)
        {
            if (KiemTraTruocKhiLuu(phieudatbanBO))
            {
                string sql = string.Format("UPDATE DATBAN SET ThoiDiem = '{0}', TienCoc = '{1}' WHERE MaDB = '{2}'", phieudatbanBO.ThoiDiem, phieudatbanBO.TienCoc, phieudatbanBO.MaDB);
                if (connect.ExecuteQuery(sql))
                {
                    MessageBox.Show("Thay Đổi Thông Tin Đặt Bàn Thành Công!", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return true;
                }
            }
            return false;
        }

        public bool XoaPhieuDatBan(PhieuDatBanBO phieudatbanBO)
        {
            string sql = string.Format("DELETE FROM DATBAN WHERE MaDB = '{0}'", phieudatbanBO.MaDB);
            string sqlCapNhatBan = string.Format("UPDATE BAN SET TinhTrang = '1' WHERE (MaBan = '{0}')", phieudatbanBO.MaBan);
            if (connect.ExecuteQuery(sqlCapNhatBan) && connect.ExecuteQuery(sql))
            {
                MessageBox.Show("Hủy Đặt Bàn & Cập Nhật Trạng Thái Bàn Thành Công!", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return true;
            }            
            return false;
        }
    }
}
